From: Benjamin Berg Date: Mon, 13 Feb 2017 15:02:02 +0000 (+0100) Subject: ui: Allow moving menu items to a certain position X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~549 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=c75785efffe945ae0d5c9eb6c51759f5404b5d24;p=gnome-shell.git ui: Allow moving menu items to a certain position This function is a helper to simplify keeping menu items ordered when their order is updated on the fly (e.g. network connections being renamed). https://bugzilla.gnome.org/show_bug.cgi?id=778686 --- diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index 52a58d6b8..011a95ac0 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -605,6 +605,24 @@ const PopupMenuBase = new Lang.Class({ menuItem.actor.show(); }, + moveMenuItem: function(menuItem, position) { + let items = this._getMenuItems(); + let i = 0; + + while (i < items.length && position > 0) { + if (items[i] != menuItem) + position--; + i++; + } + + if (i < items.length) { + if (items[i] != menuItem) + this.box.set_child_below_sibling(menuItem.actor, items[i].actor); + } else { + this.box.set_child_above_sibling(menuItem.actor, null); + } + }, + addMenuItem: function(menuItem, position) { let before_item = null; if (position == undefined) {